package com.obelisco.vista.util;

import java.util.Set;
import java.util.Vector;

import com.obelisco.modelo.data.Operacion;
import com.obelisco.vista.componentes.TipoFuncion;
import com.obelisco.vista.componentes.TipoVentana;
import com.obelisco.vista.controles.BotonFuncion;

public class BarraHerramientasHelper {
	
	public static Vector<BotonFuncion> getBotonesFuncion(TipoVentana tipo) {
		
		Vector<BotonFuncion> funciones = new Vector<BotonFuncion>();
		
		if (tipo == TipoVentana.LISTA) {

			BotonFuncion btn = new BotonFuncion(getFuncion(TipoFuncion.INCLUIR));
			funciones.add(btn);

			btn = new BotonFuncion(getFuncion(TipoFuncion.MODIFICAR));
			funciones.add(btn);

			btn = new BotonFuncion(getFuncion(TipoFuncion.ELIMINAR));
			funciones.add(btn);
			
			btn = new BotonFuncion(getFuncion(TipoFuncion.IMPRIMIR));
			funciones.add(btn);
			
			if (tipo == TipoVentana.LISTA) {
				btn = new BotonFuncion(getFuncion(TipoFuncion.BUSCAR));
				funciones.add(btn);
			} 

		}
		else if (tipo == TipoVentana.TRANSACCION){
		
			BotonFuncion btn = new BotonFuncion(getFuncion(TipoFuncion.MODIFICAR));
			funciones.add(btn);

			btn = new BotonFuncion(getFuncion(TipoFuncion.ELIMINAR));
			funciones.add(btn);
			
			btn = new BotonFuncion(getFuncion(TipoFuncion.BUSCAR));
			funciones.add(btn);
			 
		}
		else if (tipo == TipoVentana.REPORTE){
			BotonFuncion btn = new BotonFuncion(getFuncion(TipoFuncion.IMPRIMIR));
			funciones.add(btn);
		}

		return funciones;
	}
	
	public static Vector<BotonFuncion> getBotonesFuncion(Set<Operacion> operaciones) {

		Vector<BotonFuncion> funciones = new Vector<BotonFuncion>();

		for (Operacion operacion : operaciones) {
			BotonFuncion btn = new BotonFuncion(operacion);
			funciones.add(btn);
		}

		return funciones;
		
	}
	
	
	public static Operacion getFuncion(String codigo) {
		Operacion o = new Operacion();
		o.setCodigo(codigo);
		return o;
	}
	
	
	public static Operacion getFuncion(TipoFuncion tipo) {
		Operacion o = new Operacion();
		if (tipo == TipoFuncion.INCLUIR) {
			o.setCodigo("I");
		} else if (tipo == TipoFuncion.MODIFICAR){
			o.setCodigo("M");
		} else if (tipo == TipoFuncion.ELIMINAR) {
			o.setCodigo("E");
		} else if (tipo == TipoFuncion.BUSCAR) {
			o.setCodigo("B");
		} else if (tipo == TipoFuncion.IMPRIMIR) {
			o.setCodigo("P");
		}
		else {
			o.setCodigo("-");
		}
		return o;
	}
	
	
	public static TipoFuncion getTipoFuncion(Operacion o) {

		TipoFuncion tipo = TipoFuncion.DEFINIDA_USUARIO; 
		
		if (o.getCodigo().equals("I")) {
			tipo = TipoFuncion.INCLUIR;
		} else if (o.getCodigo().equals("M")) {
			tipo = TipoFuncion.MODIFICAR;
		} else if (o.getCodigo().equals("E")) {
			tipo = TipoFuncion.ELIMINAR;
		} else if (o.getCodigo().equals("B")) {
			tipo = TipoFuncion.BUSCAR;
		} 
		
		return tipo;
		
	}
	

}
